//
// Created by Jisam on 2024/8/10 15:44.
// solve #DX0001. 循环位移
#include <bits/stdc++.h>

// 使用 i64 类型为长整型
using i64 = long long;
// 使用标准命名空间
using namespace std;
// 定义最大数组长度

// 哈希基数
int ba = 101;
// 定义数组用于存储幂值、前缀和、以及哈希值
i64 pw[1048576 * 10], p[1048576 * 10], q[1048576 * 10];

/**
 * 解决循环位移问题的函数
 */
void solve() {
    // 初始化字符串 a 和 b
    string a, b;
    cin >> a >> b;

    // 使用 map 存储哈希值对应的次数
    map<int, int> mp;

    // 初始化匹配次数为 0
    int ans = 0;

    // 获取字符串 a 的长度
    int n = a.size();

    // 获取字符串 b 的长度
    int m = b.size();

    // 将字符串 a 连接自身，便于处理循环位移
    a += a;

    // 计算字符串 a 的前缀和
    for (int i = 0; i < 2 * n; i++) {
        p[i + 1] = p[i] * ba + a[i];
    }

    // 根据前缀和计算字符串 a 的哈希值，并存储到 map 中
    for (int i = 0; i < n; i++) {
        mp[p[i + n] - p[i] * pw[n]] = 1;
    }

    // 计算字符串 b 的前缀和
    for (int i = 0; i < m; i++) {
        q[i + 1] = q[i] * ba + b[i];
    }

    // 根据前缀和计算字符串 b 的哈希值，并与 map 中的哈希值比较，统计匹配次数
    for (int i = 0; i < m; i++) {
        if (i + n <= m) {
            ans += mp[q[i + n] - q[i] * pw[n]];
        }
    }

    // 输出匹配次数
    cout << ans << endl;
}

/**
 * 主函数
 * 初始化 pw 数组，并处理多次测试案例
 */
int main() {
    // 初始化 pw[0] 为 1，用于哈希计算中的幂值初始化
    pw[0] = 1LL;

    // 计算并初始化 pw 数组，用于后续哈希计算
    for (int i = 1; i <= 1048576; i++) {
        pw[i] = pw[i - 1] * ba;
    }

    // 初始化测试案例数量
    int t = 1;
    cin >> t;

    // 循环处理每个测试案例
    while (t--) {
        solve();
    }

    // 程序正常结束
    return 0;
}
